#include <REGX52.H>
#include <INTRINS.H>
//引脚定义
sbit XPY2046_DIN=P3^4;
sbit XPY2046_CS=P3^5;
sbit XPY2046_DCLK=P3^6;
sbit XPY2046_DOUT=P3^7;


/**
  * @brief  ZPT2046读取AD值
  * @param  Command 命令字，范围：头文件内定义的宏，结尾的数字表示转换的位数
  * @retval AD转换后的数字量，范围：8位为0~255，12位为0~4095
  */
unsigned char XPT2046_ReadAD(unsigned char Command){
	unsigned char ADValue=0,i;
	XPY2046_DCLK=0;
	XPY2046_CS=0;
	
	//在此时获取数据的时间要大于1.5微妙，每条指令是4微妙，满足条件
	for(i=0;i<8;i++){
		XPY2046_DIN=Command&(0x80>>i);  //放数据到Din
		XPY2046_DCLK=1;    //上升沿放数据，下降沿放数据
		XPY2046_DCLK=0;
	}

	for(i=0;i<16;i++){
		XPY2046_DCLK=1;    
		XPY2046_DCLK=0;
		if(XPY2046_DOUT){
			ADValue |=(0x8000>>i);
		}
	}
	
	XPY2046_CS=1;
	return ADValue>>8;   //0-255
}
